package com.arcticcoding.nxtphone;

import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryonet.EndPoint;

/**
 * Die Klasse Network enthaelt Informationen ueber die Objekte, die ueber das Netz versendet werden 
 * sollen und auch eine Methode um diese an dem Client und dem Server zu registrieren.
 * 
 * @author Steffen Zuber
 *
 */
public class Network {

        //Der Port, ueber den die Kommunikation zwischen Client und Server im Netz ablaueft
        static public final int port = 6666;
        
        /**
         * Diese Methode registriert die Objekte, die ueber das Netz gesendet werden.
         * 
         * @param endpoint      Endpunkt der Verbindung, an dem die Objekt registriert werden sollen
         */
        static public void register(EndPoint endpoint) {
                Kryo kryo = endpoint.getKryo();
                kryo.register(MovementMessage.class);
                kryo.register(RegisterName.class);
        }
        
        /**
         * Die Klasse MovementMessage beschreibt den Aufbau des Objekts MovementMessage, das ueber das Netz
         * gesendet wird. Es enthaelt einen String, der den Befehl angibt.
         * 
         * @author Steffen Zuber
         *
         */
        static public class MovementMessage {
                public String text;
        }
        
        /**
         * Die Klasse RegisterName beschreibt den Aufbau des Objekts RegisterName, das ueber das Netz
         * gesendet wird. Es enthaelt einen String, der den Namen angibt.
         * 
         * @author Steffen Zuber
         *
         */
        static public class RegisterName {
                public String name;
        }
}
